﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LCTMoodle.Models.ViewModels;
using LCTMoodle.Models.DataModels;

namespace LCTMoodle.Service
{
    public class ChuDeService : Service
    {
        /// <summary>
        /// Lấy chủ đề
        /// </summary>
        /// <returns>Trả về danh sách tất cả chủ đề </returns>
        public static List<ChuDeViewModel> layChuDe()
        {
            return Service.executeDataReader_List<ChuDeViewModel>
                (
                    "layChuDe",
                    new object[0]
                );
        }

        /// <summary>
        /// Lấy chủ đề theo mã chủ đề
        /// </summary>
        /// <returns>Trả về danh sách tất cả chủ đề theo mã </returns>
        ///
        public static ChuDeViewModel layChuDeTheoMaChuDe(int maChuDe)
        {
            return Service.executeDataReader<ChuDeViewModel>
                (
                    "layChuDe",
                    new object[]
                    {
                        maChuDe
                    }
                );
        }

        /// <summary>
        /// Thêm chủ đề
        /// </summary>
        /// <param name="chuDe"></param>
        /// <returns>Mã chủ đề mới được thêm</returns>
        public static int themChuDe(ChuDeDataModel chuDe)
        {
            return executeScalar<int>
                (
                    "themChuDe",
                    new object[]
                    {
                        chuDe.TenChuDe,
                        chuDe.MaChuDeCha
                    }
                );
        }

        /// <summary>
        /// Cập nhật chủ đề
        /// </summary>
        /// <param name="chuDe">ChuDeViewModel</param>
        /// <returns>Đúng hoặc sai</returns>
        public static bool capNhatChuDe(ChuDeDataModel chuDe)
        {
            return executeNonQuery(
                    "capNhatChuDeTheoMaChuDe",
                    new object[]
                    {
                        chuDe.Ma,
                        chuDe.TenChuDe,
                        chuDe.MaChuDeCha
                    }
                );
        }

        /// <summary>
        /// Xoá chủ đề theo mã chủ đề
        /// </summary>
        /// <param name="maChuDe"></param>
        /// <returns></returns>
        public static bool xoaChuDeTheoMaChuDe(int maChuDe)
        {
            return executeNonQuery
                (
                    "xoaChuDeTheoMaChuDe",
                    new object[]
                    {
                        maChuDe
                    }
                );
        }
    }
}